/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#ifndef ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H
#define ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H
namespace panda::ecmascript::kungfu {

#define BASELINE_COMPILER_BUILTIN_LIST(V)                                  \
    V(BaselineTryLdGLobalByNameImm8ID16)                                   \
    V(BaselineStToGlobalRecordImm16ID16)                                   \
    V(BaselineLdaStrID16)                                                  \
    V(BaselineCallArg1Imm8V8)                                              \
    V(BaselineLdsymbol)                                                    \
    V(BaselineLdglobal)                                                    \
    V(BaselinePoplexenv)                                                   \
    V(BaselineGetunmappedargs)                                             \
    V(BaselineAsyncfunctionenter)                                          \
    V(BaselineCreateasyncgeneratorobjV8)                                   \
    V(BaselineDebugger)                                                    \
    V(BaselineGetpropiterator)                                             \
    V(BaselineGetiteratorImm8)                                             \
    V(BaselineGetiteratorImm16)                                            \
    V(BaselineCloseiteratorImm8V8)                                         \
    V(BaselineCloseiteratorImm16V8)                                        \
    V(BaselineAsyncgeneratorresolveV8V8V8)                                 \
    V(BaselineCreateemptyobject)                                           \
    V(BaselineCreateemptyarrayImm8)                                        \
    V(BaselineCreateemptyarrayImm16)                                       \
    V(BaselineCreategeneratorobjV8)                                        \
    V(BaselineCreateiterresultobjV8V8)                                     \
    V(BaselineCreateobjectwithexcludedkeysImm8V8V8)                        \
    V(BaselineCallthis0Imm8V8)                                             \
    V(BaselineCreatearraywithbufferImm8Id16)                               \
    V(BaselineCreatearraywithbufferImm16Id16)                              \
    V(BaselineCallthis1Imm8V8V8)                                           \
    V(BaselineCallthis2Imm8V8V8V8)                                         \
    V(BaselineCreateobjectwithbufferImm8Id16)                              \
    V(BaselineCreateobjectwithbufferImm16Id16)                             \
    V(BaselineCreateregexpwithliteralImm8Id16Imm8)                         \
    V(BaselineCreateregexpwithliteralImm16Id16Imm8)                        \
    V(BaselineNewobjapplyImm8V8)                                           \
    V(BaselineNewobjapplyImm16V8)                                          \
    V(BaselineNewlexenvImm8)                                               \
    V(BaselineNewlexenvwithnameImm8Id16)                                   \
    V(BaselineAdd2Imm8V8)                                                  \
    V(BaselineSub2Imm8V8)                                                  \
    V(BaselineMul2Imm8V8)                                                  \
    V(BaselineDiv2Imm8V8)                                                  \
    V(BaselineMod2Imm8V8)                                                  \
    V(BaselineEqImm8V8)                                                    \
    V(BaselineNoteqImm8V8)                                                 \
    V(BaselineLessImm8V8)                                                  \
    V(BaselineLesseqImm8V8)                                                \
    V(BaselineGreaterImm8V8)                                               \
    V(BaselineGreatereqImm8V8)                                             \
    V(BaselineShl2Imm8V8)                                                  \
    V(BaselineShr2Imm8V8)                                                  \
    V(BaselineAshr2Imm8V8)                                                 \
    V(BaselineAnd2Imm8V8)                                                  \
    V(BaselineOr2Imm8V8)                                                   \
    V(BaselineXor2Imm8V8)                                                  \
    V(BaselineExpImm8V8)                                                   \
    V(BaselineTypeofImm8)                                                  \
    V(BaselineTypeofImm16)                                                 \
    V(BaselineTonumberImm8)                                                \
    V(BaselineTonumericImm8)                                               \
    V(BaselineNegImm8)                                                     \
    V(BaselineNotImm8)                                                     \
    V(BaselineIncImm8)                                                     \
    V(BaselineDecImm8)                                                     \
    V(BaselineIsinImm8V8)                                                  \
    V(BaselineInstanceofImm8V8)                                            \
    V(BaselineStrictnoteqImm8V8)                                           \
    V(BaselineStricteqImm8V8)                                              \
    V(BaselineIstrue)                                                      \
    V(BaselineIsfalse)                                                     \
    V(BaselineCallthis3Imm8V8V8V8V8)                                       \
    V(BaselineCallthisrangeImm8Imm8V8)                                     \
    V(BaselineSupercallthisrangeImm8Imm8V8)                                \
    V(BaselineSupercallarrowrangeImm8Imm8V8)                               \
    V(BaselineDefinefuncImm8Id16Imm8)                                      \
    V(BaselineDefinefuncImm16Id16Imm8)                                     \
    V(BaselineDefinemethodImm8Id16Imm8)                                    \
    V(BaselineDefinemethodImm16Id16Imm8)                                   \
    V(BaselineCallarg0Imm8)                                                \
    V(BaselineSupercallspreadImm8V8)                                       \
    V(BaselineCallRuntimeSupercallforwardallargsPrefV8)                    \
    V(BaselineApplyImm8V8V8)                                               \
    V(BaselineCallargs2Imm8V8V8)                                           \
    V(BaselineCallargs3Imm8V8V8V8)                                         \
    V(BaselineCallrangeImm8Imm8V8)                                         \
    V(BaselineLdexternalmodulevarImm8)                                     \
    V(BaselineLdthisbynameImm8Id16)                                        \
    V(BaselineDefinegettersetterbyvalueV8V8V8V8)                           \
    V(BaselineLdthisbynameImm16Id16)                                       \
    V(BaselineStthisbynameImm8Id16)                                        \
    V(BaselineStthisbynameImm16Id16)                                       \
    V(BaselineLdthisbyvalueImm8)                                           \
    V(BaselineLdthisbyvalueImm16)                                          \
    V(BaselineStthisbyvalueImm8V8)                                         \
    V(BaselineStthisbyvalueImm16V8)                                        \
    V(BaselineDynamicimport)                                               \
    V(BaselineDefineclasswithbufferImm8Id16Id16Imm16V8)                    \
    V(BaselineDefineclasswithbufferImm16Id16Id16Imm16V8)                   \
    V(BaselineResumegenerator)                                             \
    V(BaselineGetresumemod)                                                \
    V(BaselineGettemplateobjectImm8)                                       \
    V(BaselineGettemplateobjectImm16)                                      \
    V(BaselineGetnextpropnameV8)                                           \
    V(BaselineSetobjectwithprotoImm8V8)                                    \
    V(BaselineDelobjpropV8)                                                \
    V(BaselineSuspendgeneratorV8)                                          \
    V(BaselineAsyncfunctionawaituncaughtV8)                                \
    V(BaselineCopydatapropertiesV8)                                        \
    V(BaselineStarrayspreadV8V8)                                           \
    V(BaselineSetobjectwithprotoImm16V8)                                   \
    V(BaselineLdobjbyvalueImm8V8)                                          \
    V(BaselineLdobjbyvalueImm16V8)                                         \
    V(BaselineStobjbyvalueImm8V8V8)                                        \
    V(BaselineStobjbyvalueImm16V8V8)                                       \
    V(BaselineStownbyvalueImm8V8V8)                                        \
    V(BaselineStownbyvalueImm16V8V8)                                       \
    V(BaselineLdsuperbyvalueImm8V8)                                        \
    V(BaselineLdsuperbyvalueImm16V8)                                       \
    V(BaselineStsuperbyvalueImm8V8V8)                                      \
    V(BaselineStsuperbyvalueImm16V8V8)                                     \
    V(BaselineLdobjbyindexImm8Imm16)                                       \
    V(BaselineLdobjbyindexImm16Imm16)                                      \
    V(BaselineStobjbyindexImm8V8Imm16)                                     \
    V(BaselineStobjbyindexImm16V8Imm16)                                    \
    V(BaselineStownbyindexImm8V8Imm16)                                     \
    V(BaselineStownbyindexImm16V8Imm16)                                    \
    V(BaselineAsyncfunctionresolveV8)                                      \
    V(BaselineAsyncfunctionrejectV8)                                       \
    V(BaselineCopyrestargsImm8)                                            \
    V(BaselineLdlexvarImm4Imm4)                                            \
    V(BaselineStlexvarImm4Imm4)                                            \
    V(BaselineGetmodulenamespaceImm8)                                      \
    V(BaselineStmodulevarImm8)                                             \
    V(BaselineTryldglobalbynameImm16Id16)                                   \
    V(BaselineTrystglobalbynameImm8Id16)                                   \
    V(BaselineTrystglobalbynameImm16Id16)                                  \
    V(BaselineLdglobalvarImm16Id16)                                        \
    V(BaselineStglobalvarImm16Id16)                                        \
    V(BaselineLdobjbynameImm8Id16)                                         \
    V(BaselineLdobjbynameImm16Id16)                                        \
    V(BaselineStobjbynameImm8Id16V8)                                       \
    V(BaselineStobjbynameImm16Id16V8)                                      \
    V(BaselineStownbynameImm8Id16V8)                                       \
    V(BaselineStownbynameImm16Id16V8)                                      \
    V(BaselineLdsuperbynameImm8Id16)                                       \
    V(BaselineLdsuperbynameImm16Id16)                                      \
    V(BaselineStsuperbynameImm8Id16V8)                                     \
    V(BaselineStsuperbynameImm16Id16V8)                                    \
    V(BaselineLdlocalmodulevarImm8)                                        \
    V(BaselineStconsttoglobalrecordImm16Id16)                              \
    V(BaselineStownbyvaluewithnamesetImm8V8V8)                             \
    V(BaselineStownbyvaluewithnamesetImm16V8V8)                            \
    V(BaselineStownbynamewithnamesetImm8Id16V8)                            \
    V(BaselineStownbynamewithnamesetImm16Id16V8)                           \
    V(BaselineLdbigintId16)                                                \
    V(BaselineFldaiImm64)                                                  \
    V(BaselineReturn)                                                      \
    V(BaselineLdlexvarImm8Imm8)                                            \
    V(BaselineStlexvarImm8Imm8)                                            \
    V(BaselineJnstricteqV8Imm16)                                           \
    V(BaselineAsyncgeneratorrejectV8)                                      \
    V(BaselineSetgeneratorstateImm8)                                       \
    V(BaselineGetasynciteratorImm8)                                        \
    V(BaselineLdPrivatePropertyImm8Imm16Imm16)                             \
    V(BaselineStPrivatePropertyImm8Imm16Imm16V8)                           \
    V(BaselineTestInImm8Imm16Imm16)                                        \
    V(BaselineDeprecatedLdlexenvPrefNone)                                  \
    V(BaselineWideCreateobjectwithexcludedkeysPrefImm16V8V8)               \
    V(BaselineThrowPrefNone)                                               \
    V(BaselineDeprecatedPoplexenvPrefNone)                                 \
    V(BaselineWideNewobjrangePrefImm16V8)                                  \
    V(BaselineThrowNotexistsPrefNone)                                      \
    V(BaselineDeprecatedGetiteratornextPrefV8V8)                           \
    V(BaselineWideNewlexenvPrefImm16)                                      \
    V(BaselineThrowPatternnoncoerciblePrefNone)                            \
    V(BaselineDeprecatedCreatearraywithbufferPrefImm16)                    \
    V(BaselineWideNewlexenvwithnamePrefImm16Id16)                          \
    V(BaselineThrowDeletesuperpropertyPrefNone)                            \
    V(BaselineDeprecatedCreateobjectwithbufferPrefImm16)                   \
    V(BaselineNewobjrangeImm8Imm8V8)                                       \
    V(BaselineNewobjrangeImm16Imm8V8)                                      \
    V(BaselineWideCallrangePrefImm16V8)                                    \
    V(BaselineThrowConstassignmentPrefV8)                                  \
    V(BaselineDeprecatedTonumberPrefV8)                                    \
    V(BaselineWideCallthisrangePrefImm16V8)                                \
    V(BaselineThrowIfnotobjectPrefV8)                                      \
    V(BaselineDeprecatedTonumericPrefV8)                                   \
    V(BaselineWideSupercallthisrangePrefImm16V8)                           \
    V(BaselineThrowUndefinedifholePrefV8V8)                                \
    V(BaselineThrowUndefinedifholewithnamePrefId16)                        \
    V(BaselineDeprecatedNegPrefV8)                                         \
    V(BaselineWideSupercallarrowrangePrefImm16V8)                          \
    V(BaselineThrowIfsupernotcorrectcallPrefImm8)                          \
    V(BaselineDeprecatedNotPrefV8)                                         \
    V(BaselineWideLdobjbyindexPrefImm32)                                   \
    V(BaselineThrowIfsupernotcorrectcallPrefImm16)                         \
    V(BaselineDeprecatedIncPrefV8)                                         \
    V(BaselineWideStobjbyindexPrefV8Imm32)                                 \
    V(BaselineDeprecatedDecPrefV8)                                         \
    V(BaselineWideStownbyindexPrefV8Imm32)                                 \
    V(BaselineDeprecatedCallarg0PrefV8)                                    \
    V(BaselineWideCopyrestargsPrefImm16)                                   \
    V(BaselineDeprecatedCallarg1PrefV8V8)                                  \
    V(BaselineWideLdlexvarPrefImm16Imm16)                                  \
    V(BaselineDeprecatedCallargs2PrefV8V8V8)                               \
    V(BaselineWideStlexvarPrefImm16Imm16)                                  \
    V(BaselineDeprecatedCallargs3PrefV8V8V8V8)                             \
    V(BaselineWideGetmodulenamespacePrefImm16)                             \
    V(BaselineDeprecatedCallrangePrefImm16V8)                              \
    V(BaselineWideStmodulevarPrefImm16)                                    \
    V(BaselineDeprecatedCallspreadPrefV8V8V8)                              \
    V(BaselineWideLdlocalmodulevarPrefImm16)                               \
    V(BaselineDeprecatedCallthisrangePrefImm16V8)                          \
    V(BaselineWideLdexternalmodulevarPrefImm16)                            \
    V(BaselineDeprecatedDefineclasswithbufferPrefId16Imm16Imm16V8V8)       \
    V(BaselineWideLdpatchvarPrefImm16)                                     \
    V(BaselineDeprecatedResumegeneratorPrefV8)                             \
    V(BaselineWideStpatchvarPrefImm16)                                     \
    V(BaselineDeprecatedGetresumemodePrefV8)                               \
    V(BaselineDeprecatedGettemplateobjectPrefV8)                           \
    V(BaselineDeprecatedDelobjpropPrefV8V8)                                \
    V(BaselineDeprecatedSuspendgeneratorPrefV8V8)                          \
    V(BaselineDeprecatedAsyncfunctionawaituncaughtPrefV8V8)                \
    V(BaselineDeprecatedCopydatapropertiesPrefV8V8)                        \
    V(BaselineDeprecatedSetobjectwithprotoPrefV8V8)                        \
    V(BaselineDeprecatedLdobjbyvaluePrefV8V8)                              \
    V(BaselineDeprecatedLdsuperbyvaluePrefV8V8)                            \
    V(BaselineDeprecatedLdobjbyindexPrefV8Imm32)                           \
    V(BaselineDeprecatedAsyncfunctionresolvePrefV8V8V8)                    \
    V(BaselineDeprecatedAsyncfunctionrejectPrefV8V8V8)                     \
    V(BaselineDeprecatedStlexvarPrefImm4Imm4V8)                            \
    V(BaselineDeprecatedStlexvarPrefImm8Imm8V8)                            \
    V(BaselineDeprecatedStlexvarPrefImm16Imm16V8)                          \
    V(BaselineDeprecatedGetmodulenamespacePrefId32)                        \
    V(BaselineDeprecatedStmodulevarPrefId32)                               \
    V(BaselineDeprecatedLdobjbynamePrefId32V8)                             \
    V(BaselineDeprecatedLdsuperbynamePrefId32V8)                           \
    V(BaselineDeprecatedLdmodulevarPrefId32Imm8)                           \
    V(BaselineDeprecatedStconsttoglobalrecordPrefId32)                     \
    V(BaselineDeprecatedStlettoglobalrecordPrefId32)                       \
    V(BaselineDeprecatedStclasstoglobalrecordPrefId32)                     \
    V(BaselineDeprecatedLdhomeobjectPrefNone)                              \
    V(BaselineDeprecatedCreateobjecthavingmethodPrefImm16)                 \
    V(BaselineDeprecatedDynamicimportPrefV8)                               \
    V(BaselineCallRuntimeNotifyConcurrentResultPrefNone)                   \
    V(BaselineDefineFieldByNameImm8Id16V8)                                 \
    V(BaselineDefinePropertyByNameImm8Id16V8)                              \
    V(BaselineCallRuntimeDefineFieldByValuePrefImm8V8V8)                   \
    V(BaselineCallRuntimeDefineFieldByIndexPrefImm8Imm32V8)                \
    V(BaselineCallRuntimeToPropertyKeyPrefNone)                            \
    V(BaselineCallRuntimeCreatePrivatePropertyPrefImm16Id16)               \
    V(BaselineCallRuntimeDefinePrivatePropertyPrefImm8Imm16Imm16V8)        \
    V(BaselineCallRuntimeCallInitPrefImm8V8)                               \
    V(BaselineCallRuntimeDefineSendableClassPrefImm16Id16Id16Imm16V8)      \
    V(BaselineCallRuntimeLdSendableClassPrefImm16)                         \
    V(BaselineCallRuntimeIstruePrefImm8)                                   \
    V(BaselineCallRuntimeIsfalsePrefImm8)                                  \
    V(BaselineReturnundefined)                                             \
    V(BaselineExceptionHandler)                                            \
    V(BaselineUpdateHotness)                                               \

}  // namespace panda::ecmascript::kungfu
#endif  // ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H
